package org.jfonia.musicxml.model;

import java.util.ArrayList;

import org.w3c.dom.Node;

/**
 * Score-header containing information about title, authors, etc.
 * Note: this is not an element in MusicXML (part of score itself).
 * Note: doesn't follow MusicXML exactly (TODO) 
 * @author Wijnand
 *
 */
public class ScoreHeader extends Element
{
	private String workNumber = null;
	private String workTitle = null;
	private String movementNumber = null;
	private String movementTitle = null;
	private ArrayList<String> composerList = new ArrayList<String>();
	private ArrayList<String> poetList = new ArrayList<String>();
	private ArrayList<Creator> creatorList = new ArrayList<Creator>();
	private String rights = null;
	private String source = null;
	
	private boolean stopTiesOmitted;
	
	// credits...
	
//	private boolean stopTiesOmitted = false;	// workaround for Dolet

	public ScoreHeader(Node node)
	{	
		super(node);
	}
	

	public void setWorkNumber(String workNumber)
	{
		this.workNumber = workNumber;
	}

	public String getWorkNumber()
	{
		return workNumber;
	}

	public void setWorkTitle(String workTitle)
	{
		this.workTitle = workTitle;
	}

	public String getWorkTitle()
	{
		return workTitle;
	}

	public void setMovementNumber(String movementNumber)
	{
		this.movementNumber = movementNumber;
	}

	public String getMovementNumber()
	{
		return movementNumber;
	}

	public void setMovementTitle(String movementTitle)
	{
		this.movementTitle = movementTitle;
	}

	public String getMovementTitle()
	{
		return movementTitle;
	}

	public void setComposerList(ArrayList<String> composerList)
	{
		this.composerList = composerList;
	}

	public ArrayList<String> getComposerList()
	{
		return composerList;
	}
	
	public void addComposer(String composer)
	{
		composerList.add(composer);
	}

	public void setPoetList(ArrayList<String> poetList)
	{
		this.poetList = poetList;
	}

	public ArrayList<String> getPoetList()
	{
		return poetList;
	}
	
	public void addPoet(String poet)
	{
		poetList.add(poet);
	}

	public void setCreatorList(ArrayList<Creator> creatorList)
	{
		this.creatorList = creatorList;
	}

	public ArrayList<Creator> getCreatorList()
	{
		return creatorList;
	}
	
	public void addCreator(Creator creator)
	{
		creatorList.add(creator);
	}

	public void setRights(String rights)
	{
		this.rights = rights;
	}

	public String getRights()
	{
		return rights;
	}

	public void setSource(String source)
	{
		this.source = source;
	}

	public String getSource()
	{
		return source;
	}

	public boolean isStopTiesOmitted()
	{
		return stopTiesOmitted;
	}

	public void setStopTiesOmitted(boolean stopTiesOmitted)
	{
		this.stopTiesOmitted = stopTiesOmitted;
	}
	
}
